
@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@:
@:	DVBSENCO8.s
@:
@:	DVBS TS Encoder for ARM 
@:
@:	Brian Jordan, G4EWJ, 22 February 2013
@:
@:	This software is provided free for non-commercial amateur radio use.
@:	It has no warranty of fitness for any purpose.
@:	Use at your own risk.
@:
@:	If @ is not the comment character for your assembler,
@:	search and replace @: with yours.
@:
@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@:										   
@:	dvbsenco - DVBS Encode
@:										   
@:	Converts raw 188 byte transport stream packets by performing
@:	sync inversion, energy distribution, Reed Solomon and interleaving.										   
@:	Returns a packet ready for Viterbi processing.
@:
@:	The first 11 packets returned after initialisation are incomplete due to
@:	the effect of interleaving, which spreads each input packet over the
@:	following 12 output packets.
@:
@:	Uses non-aligned addressing.
@:
@:	Processes a packet in 15us on a 700MHz Raspberry Pi when running
@:	within the cache.
@:
@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


 	.text		

@: 	Only these 2 external calls are necessary. 
@:	The individual sections show calling requirements for information only.
 	
	.global		dvbsenco_init
	.global		dvbsenco
	.global		energy
	.global		reed
	.global 	interleave 	


@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@:
@:	Initialisation
@:
@:	Calling from C:
@:		void  dvbsenco_init (void) ;
@:
@:	Any registers used are restored to their original values.
@:
@:	Memory usage:	
@:		None
@:	
@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

dvbsenco_init:	
	push	{r14}
	bl	energy_init
	bl	reed_init
	bl	interleave_init 
	pop	{r14}
	bx	lr


@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@:
@:	DVBS Encode
@:
@:	Accepts a pointer to a 188 byte packet and performs:
@:		Sync inversion and energy distribution
@:		Reed Solomon
@:		Interleaving
@:
@:	Returns a pointer to a 204 byte packet ready for Viterbi processing.
@:
@:	Supplied buffer address must be aligned to a word (4 byte) boundary.
@:	Any registers used (except R0) are restored to their original values.
@:
@:	Calling from C:
@:		char* dvbsenco (char* packetin) ; 	(unsigned char may be used)
@:
@:	Memory usage:	
@:		Scratchpad (workbuff)		256 bytes
@:		Plus, see individual sections.
@:	
@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
			
dvbsenco:
	push	{r1,r2,r14}
					@: r0 points to the input packet - 
	ldr	r1,=workbuff		@: output to workbuff
	bl	energy

	ldr	r0,=workbuff
	bl	reed

	ldr	r0,=workbuff
	bl	interleave		@: returns with r0 = pointer to an output packet

yy:
	
	
	pop	{r1,r2,r14}
	bx	lr
	
	
@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@:
@:	Energy processing
@:
@:	Accepts a pointer to an input packet.
@:	Returns a pointer to an output packet.
@:	The input and output addresses may be the same. 
@:
@:	Calling from C:
@:		void energy_init (void) ;
@:		void energy (char* input, char* output) ; (unsigned char may be used)	
@:	
@:	Supplied buffer addresses must be aligned to word (4 byte) boundaries.
@:	Any registers used are restored to their original values.
@:
@:	Memory usage:	
@:		Constant table (energy_table) 1504 bytes
@:	
@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

energy_init:	
	push	{r0,r1}
	ldr	r1,=energytableindex
	mov	r0,#0
	str	r0,[r1]

	ldr	r1,=packetcount
	mov	r0,#0
	str	r0,[r1]

	pop	{r0,r1}
	bx	lr


@: r0 points to the 188 byte input packet starting with 0x47 
@: r1 points to the 188 byte output buffer 

energy:
 	push	{r0,r1,r2,r3,r4,r5,r6,r7,r8}
 	ldr	r4,=packetcount
 	ldr	r4,[r4]			@: packetcount 
 	and	r4,#(NIPACKETS-1)	@: modulo
	ldr	r2,=energytableindex
 	ldr	r5,[r2]			@: energytableindex 
	 	
	mov	r6,#0x47
 	ands	r4,#7
	moveq	r6,#0xb8
	moveq	r5,#0			@: reset energytableindex 
	strb	r6,[r0]			@: save sync byte in the packet 		
 
eng2: 	
 	mov	r6,#188/4
 	ldr	r7,=energytable	
eng4: 	
	ldr	r8,[r0],#4		@: get a word to process 
	ldr	r3,[r7,r5]		@: get a word from the energy table
	eor	r8,r3			@: r8 = r8 ^ r3		
	add	r5,#4			@: increment energytableindex 
	str	r8,[r1],#4		@: store it back and move to next 
	adds	r6,#-1			@: decrement loop counter 
	bne	eng4				
	 	
	str	r5,[r2]			@: save energytableindex 	 	
	
eng6:
 	pop	{r0,r1,r2,r3,r4,r5,r6,r7,r8}
 	bx	lr


@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@:
@:	Reed Solomon processing
@:
@:	Accepts a pointer to a 188 byte input packet.
@:	Adds the 16 RS bytes to the end of the 188 bytes.
@:
@:	***NOTE*** 
@:		If reed() is called from outside dvbsenco8, the packet buffer 
@:		pointed to must be 208 bytes long and not 204, 
@:		as 4 bytes of scratchpad are required at the end.
@:
@:	Calling from C:
@:		void reed_init (void) ;
@:		void reed (char *input188) ;	
@:
@:	Supplied buffer address must be aligned to a word (4 byte) boundary.
@:	Any registers used are restored to their original values.
@:
@:	Memory usage:	
@:		Constant table (reed1table)  256 bytes
@:		Constant table (reed2table) 4096 bytes
@:	
@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

reed_init:
 	bx	lr
 

reed:
    push    {r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12}
 
 					@: r0 points to the input packet
    add	    r1,r0,#188			@: r1 = pointer to 16 RS bytes at the end of 188 bytes
   
    mov     r12,#0
    str     r12,[r1,#0]
    str     r12,[r1,#4]
    str     r12,[r1,#8]
    str     r12,[r1,#12]
    str     r12,[r1,#16]                @: extra word for unaligned access - calling buffer must be 208 bytes
 
    mov     r3,#188                     @: number of bytes to process 

    ldr     r12,=reed1table
    
@: outer loop here 

areed4a:
    ldrb    r2,[r0],#1                  @: get a byte to process    
    ldrb    r4,[r1]                     @: byte 0 of RS16 
    eor     r2,r4
    ldrb    r2,[r2,r12]                 @: feedback 

    teq     r2,#0xff
    beq     areed4c

    lsl     r2,#4          
   
 @: offset into reed2table - 256 sections of 16 bytes 

    ldr     r4,=reed2table	   
    add     r2,r4                       @: r2 now points to the 16 bytes of interest in reed2table

 @: old inner loop here 

    ldr     r4,[r2,#0]                  @: load from reed2table
    ldr     r8,[r1,#1]                  @: load offset RS 16 bytes 
    ldr     r5,[r2,#4]
    ldr     r9,[r1,#5]
    ldr     r6,[r2,#8]                  
    ldr     r10,[r1,#9] 
    ldr     r7,[r2,#12]
    ldr     r11,[r1,#13]

    eor     r4,r8
    eor     r5,r9
    eor     r6,r10
    eor     r7,r11

    stm     r1,{r4,r5,r6,r7}           	@: save the new RS 16 bytes 

areed4b:  
    adds    r3,#-1
    bne     areed4a
    
areed4x:
    pop     {r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12} 
     
    bx      LR   

areed4c:                             	@: feedback = 0xff 
    ldr     r4,[r1,#1]
    str     r4,[r1,#0] 
    ldr     r4,[r1,#5]
    str     r4,[r1,#4] 
    ldr     r4,[r1,#9]
    str     r4,[r1,#8] 
    ldr     r4,[r1,#13]
    str     r4,[r1,#12] 
    b       areed4b      


@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@:
@:	Interleave processing
@:
@:	Accepts a pointer to an input packet.
@:	Returns a pointer to an output packet.
@:
@:	The first 11 packets returned after initialisation are incomplete
@:	due to the way each input packet is spread over the next 12 output packets.
@:
@:	Calling from C:
@:		void 	interleave_init (void) ;
@:		char*	interleave 	(char* packetin) ; (unsigned char may be used)	
@:
@:	Supplied buffer address must be aligned to a word (4 byte) boundary.
@:	Any registers used (except R0) are restored to their original values.
@:
@:	Memory usage:	
@:		constant table (interleavetable) 416 bytes
@:		ram scratchpad (ipackets) 	8192 bytes
@:	
@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
interleave_init:
	push	{r0,r1,r2}
	ldr	r1,=packetcount
	mov	r0,#0
	str	r0,[r1]			@: initialise the packet count for sync inversion
	
	mov	r1,#NIPACKETS
	mov	r2,#IPACKETSIZE
	mul	r2,r1			@: r2 = r2 * r1
	ldr	r1,=ipackets
	mov	r0,#0

ini2:
	strb	r0,[r1],#1		@: clear the interleaved packets buffer
	adds	r2,#-1
	bne	ini2		
	
	pop	{r0,r1,r2}
	bx	lr


@: 	On entry r0 points to the 204 byte packet to be interleaved 
@: 	On exit  r0 points to the 204 byte packet ready for Viterbi 

interleave:
	push	{r1,r2,r3,r4,r5,r6,r7,r8}
	ldr	r1,=ipackets		@: r1 = base address of the ipackets output array	
	mov	r2,#NIPACKETS * IPACKETSIZE
	add	r2,#-1			@: r2 = modulo mask for the ipackets output array 
	ldr	r3,=interleavetable	@: r3 = base address of the interleave offset table 
	ldr	r4,=packetcount		@: r4 = address of input packet number
	ldr	r5,[r4]			@: r5 = input packet count
	and	r5,#(NIPACKETS-1)	@: mask off actual number of output packet slots
	mov	r6,#IPACKETSIZE
	mul	r5,r6			@: r5 = offset into ipackets of first byte to be filled 
	mov	r6,#204
inv2:
	ldrh	r7,[r3],#2		@: get a 16 bit offset value from the interleave table and increment 
	ldrb	r8,[r0],#1		@: get an input byte 	
	add	r7,r5			@: r7 = offset into ipackets for this input byte 
	and	r7,r2			@: mask r7 for wrapping 
	strb	r8,[r1,r7]		@: store the input byte into ipackets
	adds	r6,#-1
	bne	inv2
	
	ldr	r1,=packetcount		@: packet count 
	ldr	r2,[r1]			@: get the packet count
	add	r2,#1			@: count a packet processed
	str	r2,[r1]			@: save packet count	

	ldr	r1,=ipackets
	add	r0,r1,r5		@: return with output packet address

	pop	{r1,r2,r3,r4,r5,r6,r7,r8}
	bx	lr		

@:**************************************************************************** 


	.data
	
energytableindex:	.word	0
packetcount:		.word	0	

.equ	NIPACKETS,	32
.equ	IPACKETSIZE,	256

ipackets:
	.space		NIPACKETS * IPACKETSIZE

workbuff:
	.space		256
 

@: PRBS energy scrambler 

energytable:
        .byte   0x00,0x03,0xF6,0x08,0x34,0x30,0xB8,0xA3
        .byte   0x93,0xC9,0x68,0xB7,0x73,0xB3,0x29,0xAA
        .byte   0xF5,0xFE,0x3C,0x04,0x88,0x1B,0x30,0x5A
        .byte   0xA1,0xDF,0xC4,0xC0,0x9A,0x83,0x5F,0x0B
        .byte   0xC2,0x38,0x8C,0x93,0x2B,0x6A,0xFB,0x7E
        .byte   0x1B,0x04,0x5A,0x19,0xDC,0x54,0xC9,0xFA
        .byte   0xB4,0x1F,0xB8,0x41,0x91,0x85,0x65,0x1F
        .byte   0x5E,0x43,0xC5,0x88,0x9D,0x33,0x4E,0xAB
        .byte   0xA7,0xF9,0xD0,0x14,0xE0,0x7A,0x41,0x1D
        .byte   0x86,0x4D,0x15,0xAE,0x7D,0xE5,0x0C,0x5E
        .byte   0x29,0xC4,0xF4,0x9A,0x3B,0x5C,0x9B,0xCB
        .byte   0x58,0xBB,0xD3,0x98,0xE9,0x52,0x77,0xED
        .byte   0x30,0x6E,0xA1,0x67,0xC7,0x50,0x93,0xE3
        .byte   0x68,0x4B,0x71,0xBB,0x25,0x9A,0xDD,0x5E
        .byte   0xCF,0xC6,0xA0,0x97,0xC3,0x70,0x8B,0x23
        .byte   0x3A,0xCA,0x9E,0xBF,0x47,0x83,0x91,0x09
        .byte   0x66,0x37,0x54,0xB3,0xFB,0xA8,0x19,0xF0
        .byte   0x54,0x21,0xF8,0xC4,0x12,0x98,0x6F,0x51
        .byte   0x63,0xE7,0x48,0x53,0xB1,0xE9,0xA4,0x75
        .byte   0xD9,0x3C,0xD6,0x8A,0xF7,0x3E,0x32,0x84
        .byte   0xAF,0x1B,0xE2,0x58,0x4D,0xD1,0xAC,0xE5
        .byte   0xEA,0x5C,0x7D,0xC9,0x0C,0xB6,0x2B,0xB4
        .byte   0xF9,0xBA,0x15,0x9C,0x7D,0x49,0x0F,0xB6
        .byte   0x21,0xB4,0xC5,0xBA,0x00,0x9F,0x4D,0x43
        .byte   0xAF,0x89,0xE1,0x34,0x46,0xB9,0x97,0x95
        .byte   0x71,0x7F,0x27,0x02,0xD2,0x0E,0xEC,0x26
        .byte   0x68,0xD5,0x72,0xFF,0x2E,0x02,0xE4,0x0E
        .byte   0x58,0x25,0xD0,0xDC,0xE2,0xCA,0x4E,0xBD
        .byte   0xA7,0x8D,0xD1,0x2C,0xE6,0xEA,0x56,0x7D
        .byte   0xF5,0x0C,0x3E,0x28,0x84,0xF3,0x1A,0x2A
        .byte   0x5C,0xFD,0xCA,0x0C,0xBC,0x2B,0x88,0xF9
        .byte   0x32,0x16,0xAC,0x77,0xE9,0x30,0x76,0xA1
        .byte   0x37,0xC6,0xB0,0x97,0xA3,0x71,0xCB,0x24
        .byte   0xBA,0xDB,0x9E,0xD9,0x46,0xD7,0x96,0xF1
        .byte   0x76,0x27,0x34,0xD2,0xBA,0xEF,0x9E,0x61
        .byte   0x45,0x47,0x9F,0x91,0x41,0x67,0x87,0x51
        .byte   0x13,0xE6,0x68,0x55,0x71,0xFF,0x24,0x02
        .byte   0xD8,0x0E,0xD0,0x26,0xE0,0xD6,0x42,0xF5
        .byte   0x8E,0x3D,0x24,0x8E,0xDB,0x26,0xDA,0xD6
        .byte   0xDE,0xF6,0xC6,0x36,0x94,0xB7,0x7B,0xB3
        .byte   0x19,0xAA,0x55,0xFD,0xFC,0x0C,0x08,0x28
        .byte   0x30,0xF0,0xA2,0x23,0xCC,0xC8,0xAA,0xB3
        .byte   0xFF,0xA8,0x01,0xF0,0x04,0x20,0x18,0xC0
        .byte   0x52,0x81,0xEF,0x04,0x62,0x19,0x4C,0x57
        .byte   0xA9,0xF1,0xF4,0x24,0x38,0xD8,0x92,0xD3
        .byte   0x6E,0xEB,0x66,0x7B,0x55,0x1B,0xFE,0x58
        .byte   0x05,0xD0,0x1C,0xE0,0x4A,0x41,0xBD,0x85
        .byte   0x00,0x1D,0x2E,0x4E,0xE5,0xA6,0x5D,0xD5
        .byte   0xCC,0xFC,0xAA,0x0B,0xFC,0x38,0x08,0x90
        .byte   0x33,0x60,0xAB,0x43,0xFB,0x88,0x19,0x30
        .byte   0x56,0xA1,0xF7,0xC4,0x30,0x98,0xA3,0x53
        .byte   0xCB,0xE8,0xB8,0x73,0x91,0x29,0x66,0xF7
        .byte   0x56,0x33,0xF4,0xA8,0x3B,0xF0,0x98,0x23
        .byte   0x50,0xCB,0xE2,0xB8,0x4F,0x91,0xA1,0x65
        .byte   0xC7,0x5C,0x93,0xCB,0x68,0xBB,0x73,0x9B
        .byte   0x29,0x5A,0xF7,0xDE,0x30,0xC4,0xA2,0x9B
        .byte   0xCF,0x58,0xA3,0xD3,0xC8,0xE8,0xB2,0x73
        .byte   0xAD,0x29,0xEE,0xF4,0x66,0x39,0x54,0x97
        .byte   0xFB,0x70,0x1B,0x20,0x5A,0xC1,0xDE,0x84
        .byte   0xC7,0x1A,0x92,0x5F,0x6D,0xC3,0x6C,0x8B
        .byte   0x6B,0x3B,0x7A,0x9B,0x1F,0x5A,0x43,0xDD
        .byte   0x88,0xCD,0x32,0xAE,0xAF,0xE7,0xE0,0x50
        .byte   0x41,0xE1,0x84,0x45,0x19,0x9E,0x55,0x45
        .byte   0xFF,0x9C,0x01,0x48,0x07,0xB0,0x11,0xA0
        .byte   0x65,0xC1,0x5C,0x87,0xCB,0x10,0xBA,0x63
        .byte   0x9D,0x49,0x4F,0xB7,0xA1,0xB1,0xC5,0xA4
        .byte   0x9D,0xDB,0x4C,0xDB,0xAA,0xD9,0xFE,0xD4
        .byte   0x06,0xF8,0x16,0x10,0x74,0x61,0x39,0x46
        .byte   0x97,0x97,0x71,0x73,0x27,0x2A,0xD2,0xFE
        .byte   0xEE,0x06,0x64,0x15,0x58,0x7F,0xD1,0x00
        .byte   0xE6,0x02,0x54,0x0D,0x00,0x2C,0x10,0xE8
        .byte   0x62,0x71,0x4D,0x27,0xAE,0xD1,0xE6,0xE4
        .byte   0x56,0x59,0xF5,0xD4,0x3C,0xF8,0x8A,0x13
        .byte   0x3C,0x6A,0x89,0x7F,0x37,0x02,0xB2,0x0F
        .byte   0xAC,0x21,0xE8,0xC4,0x72,0x99,0x2F,0x56
        .byte   0xE3,0xF6,0x48,0x35,0xB0,0xBD,0xA3,0x8D
        .byte   0xC9,0x2C,0xB6,0xEB,0xB6,0x79,0xB5,0x15
        .byte   0xBE,0x7D,0x85,0x0D,0x1E,0x2E,0x44,0xE5
        .byte   0x9A,0x5D,0x5D,0xCF,0xCC,0xA0,0xAB,0xC3
        .byte   0xF8,0x88,0x13,0x30,0x6A,0xA1,0x7F,0xC7
        .byte   0x00,0x92,0x03,0x6C,0x0B,0x68,0x3B,0x70
        .byte   0x9B,0x23,0x5A,0xCB,0xDE,0xB8,0xC7,0x92
        .byte   0x91,0x6F,0x67,0x63,0x53,0x4B,0xEB,0xB8
        .byte   0x79,0x91,0x15,0x66,0x7F,0x55,0x03,0xFE
        .byte   0x08,0x04,0x30,0x18,0xA0,0x53,0xC1,0xE8
        .byte   0x84,0x73,0x19,0x2A,0x56,0xFD,0xF6,0x0C
        .byte   0x34,0x28,0xB8,0xF3,0x92,0x29,0x6C,0xF7
        .byte   0x6A,0x33,0x7C,0xAB,0x0B,0xFA,0x38,0x1C
        .byte   0x90,0x4B,0x61,0xBB,0x45,0x9B,0x9D,0x59
        .byte   0x4F,0xD7,0xA0,0xF1,0xC2,0x24,0x8C,0xDB
        .byte   0x2A,0xDA,0xFE,0xDE,0x06,0xC4,0x16,0x98
        .byte   0x77,0x51,0x33,0xE6,0xA8,0x57,0xF1,0xF0
        .byte   0x24,0x20,0xD8,0xC2,0xD2,0x8E,0xEF,0x26
        .byte   0x62,0xD5,0x4E,0xFF,0xA6,0x01,0xD4,0x04
        .byte   0x00,0x1A,0x10,0x5C,0x61,0xC9,0x44,0xB7
        .byte   0x9B,0xB1,0x59,0xA7,0xD5,0xD0,0xFC,0xE2
        .byte   0x0A,0x4C,0x3D,0xA8,0x8D,0xF3,0x2C,0x2A
        .byte   0xE8,0xFE,0x72,0x05,0x2C,0x1E,0xE8,0x46
        .byte   0x71,0x95,0x25,0x7E,0xDF,0x06,0xC2,0x16
        .byte   0x8C,0x77,0x29,0x32,0xF6,0xAE,0x37,0xE4
        .byte   0xB0,0x5B,0xA1,0xD9,0xC4,0xD4,0x9A,0xFB
        .byte   0x5E,0x1B,0xC4,0x58,0x99,0xD3,0x54,0xEB
        .byte   0xFA,0x78,0x1D,0x10,0x4E,0x61,0xA5,0x45
        .byte   0xDF,0x9C,0xC1,0x4A,0x87,0xBF,0x11,0x82
        .byte   0x65,0x0D,0x5E,0x2F,0xC4,0xE0,0x9A,0x43
        .byte   0x5D,0x8B,0xCD,0x38,0xAE,0x93,0xE7,0x68
        .byte   0x53,0x71,0xEB,0x24,0x7A,0xD9,0x1E,0xD6
        .byte   0x46,0xF5,0x96,0x3D,0x74,0x8F,0x3B,0x22
        .byte   0x9A,0xCF,0x5E,0xA3,0xC7,0xC8,0x90,0xB3
        .byte   0x63,0xAB,0x49,0xFB,0xB4,0x19,0xB8,0x55
        .byte   0x91,0xFD,0x64,0x0F,0x58,0x23,0xD0,0xC8
        .byte   0xE2,0xB2,0x4F,0xAD,0xA1,0xED,0xC4,0x6C
        .byte   0x99,0x6B,0x57,0x7B,0xF3,0x18,0x2A,0x50
        .byte   0xFD,0xE2,0x0C,0x4C,0x29,0xA8,0xF5,0xF2
        .byte   0x3C,0x2C,0x88,0xEB,0x32,0x7A,0xAD,0x1F
        .byte   0xEE,0x40,0x65,0x81,0x5D,0x07,0xCE,0x10
        .byte   0xA4,0x63,0xD9,0x48,0xD7,0xB2,0xF1,0xAE
        .byte   0x25,0xE4,0xDC,0x5A,0x00,0xDE,0xB4,0xC7
        .byte   0xBA,0x91,0x9F,0x65,0x43,0x5F,0x8B,0xC1
        .byte   0x38,0x86,0x93,0x17,0x6A,0x73,0x7D,0x2B
        .byte   0x0E,0xFA,0x26,0x1C,0xD4,0x4A,0xF9,0xBE
        .byte   0x15,0x84,0x7D,0x19,0x0E,0x56,0x25,0xF4
        .byte   0xDC,0x3A,0xC8,0x9E,0xB3,0x47,0xAB,0x91
        .byte   0xF9,0x64,0x17,0x58,0x73,0xD1,0x28,0xE6
        .byte   0xF2,0x56,0x2D,0xF4,0xEC,0x3A,0x68,0x9D
        .byte   0x73,0x4F,0x2B,0xA2,0xF9,0xCE,0x14,0xA4
        .byte   0x7B,0xD9,0x18,0xD6,0x52,0xF5,0xEE,0x3C
        .byte   0x64,0x89,0x5B,0x37,0xDA,0xB0,0xDF,0xA2
        .byte   0xC1,0xCE,0x84,0xA7,0x1B,0xD2,0x58,0xED
        .byte   0xD2,0x6C,0xED,0x6A,0x6F,0x7D,0x63,0x0F
        .byte   0x4A,0x23,0xBC,0xC9,0x8A,0xB5,0x3F,0xBE
        .byte   0x81,0x87,0x05,0x12,0x1E,0x6C,0x45,0x69
        .byte   0x9F,0x75,0x43,0x3F,0x8A,0x81,0x3F,0x06
        .byte   0x82,0x17,0x0C,0x72,0x29,0x2C,0xF6,0xEA
        .byte   0x36,0x7C,0xB5,0x0B,0xBE,0x39,0x84,0x95
        .byte   0x1B,0x7E,0x5B,0x05,0xDA,0x1C,0xDC,0x4A
        .byte   0xC9,0xBE,0xB5,0x87,0xBD,0x11,0x8E,0x65
        .byte   0x25,0x5E,0xDF,0xC6,0xC0,0x96,0x83,0x77
        .byte   0x0B,0x32,0x3A,0xAC,0x9F,0xEB,0x40,0x7B
        .byte   0x81,0x19,0x06,0x56,0x15,0xF4,0x7C,0x39
        .byte   0x08,0x96,0x33,0x74,0xAB,0x3B,0xFA,0x98
        .byte   0x00,0x50,0x43,0xE1,0x88,0x45,0x31,0x9E
        .byte   0xA5,0x47,0xDF,0x90,0xC1,0x62,0x87,0x4F
        .byte   0x13,0xA2,0x69,0xCD,0x74,0xAF,0x3B,0xE2
        .byte   0x98,0x4F,0x51,0xA3,0xE5,0xC8,0x5C,0xB1
        .byte   0xCB,0xA4,0xB9,0xDB,0x94,0xD9,0x7A,0xD7
        .byte   0x1E,0xF2,0x46,0x2D,0x94,0xED,0x7A,0x6F
        .byte   0x1D,0x62,0x4F,0x4D,0xA3,0xAD,0xC9,0xEC
        .byte   0xB4,0x6B,0xB9,0x79,0x97,0x15,0x72,0x7F
        .byte   0x2D,0x02,0xEE,0x0E,0x64,0x25,0x58,0xDF
        .byte   0xD2,0xC0,0xEE,0x82,0x67,0x0D,0x52,0x2F
        .byte   0xEC,0xE0,0x6A,0x41,0x7D,0x87,0x0D,0x12
        .byte   0x2E,0x6C,0xE5,0x6A,0x5F,0x7D,0xC3,0x0C
        .byte   0x8A,0x2B,0x3C,0xFA,0x8A,0x1F,0x3C,0x42
        .byte   0x89,0x8F,0x35,0x22,0xBE,0xCF,0x86,0xA1
        .byte   0x17,0xC6,0x70,0x95,0x23,0x7E,0xCB,0x06
        .byte   0xBA,0x17,0x9C,0x71,0x49,0x27,0xB6,0xD1
        .byte   0xB6,0xE5,0xB6,0x5D,0xB5,0xCD,0xBC,0xAD
        .byte   0x8B,0xED,0x38,0x6E,0x91,0x67,0x67,0x53
        .byte   0x53,0xEB,0xE8,0x78,0x71,0x11,0x26,0x66
        .byte   0xD5,0x56,0xFF,0xF6,0x00,0x34,0x00,0xB8
        .byte   0x03,0x90,0x09,0x60,0x37,0x40,0xB3,0x83
        .byte   0xA9,0x09,0xF6,0x34,0x34,0xB8,0xBB,0x93
        .byte   0x99,0x69,0x57,0x77,0xF3,0x30,0x2A,0xA0
        .byte   0xFF,0xC2,0x00,0x8C,0x00,0x28,0x0A,0xF0
        .byte   0x3E,0x20,0x84,0xC3,0x1A,0x8A,0x5F,0x3D
        .byte   0xC2,0x8C,0x8F,0x2B,0x22,0xFA,0xCE,0x1E
        .byte   0xA4,0x47,0xD9,0x90,0xD5,0x62,0xFF,0x4E
        .byte   0x03,0xA4,0x09,0xD8,0x34,0xD0,0xBA,0xE3
        .byte   0x9E,0x49,0x45,0xB7,0x9D,0xB1,0x4D,0xA7
        .byte   0xAD,0xD1,0xEC,0xE4,0x6A,0x59,0x7D,0xD7
        .byte   0x0C,0xF2,0x2A,0x2C,0xFC,0xEA,0x0A,0x7C
        .byte   0x3D,0x08,0x8E,0x33,0x24,0xAA,0xDB,0xFE
        .byte   0xD8,0x06,0xD0,0x16,0xE0,0x76,0x41,0x35
        .byte   0x86,0xBD,0x17,0x8E,0x71,0x25,0x26,0xDE
        .byte   0xD6,0xC6,0xF6,0x96,0x37,0x74,0xB3,0x3B
        .byte   0xAA,0x99,0xFF,0x54,0x03,0xF8,0x08,0x10
        .byte   0x30,0x60,0xA1,0x43,0xC7,0x88,0x91,0x33
        .byte   0x66,0xAB,0x57,0xFB,0xF0,0x18,0x20,0x50
        .byte   0xC1,0xE2,0x84,0x4F,0x19,0xA2,0x55,0xCD
        .byte   0xFC,0xAC,0x0B,0xE8,0x38,0x70,0x91,0x23
        .byte   0x66,0xCB,0x56,0xBB,0xF7,0x98,0x31,0x50
        .byte   0xA7,0xE3,0xD0,0x48,0xE1,0xB2,0x45,0xAD
        .byte   0x9D,0xED,0x4C,0x6F,0xA9,0x61,0xF7,0x44
        .byte   0x33,0x98,0xA9,0x53,0xF7,0xE8,0x30,0x70
        .byte   0xA1,0x23,0xC6,0xC8,0x96,0xB3,0x77,0xAB
        .byte   0x31,0xFA,0xA4,0x1F,0xD8,0x40,0xD1,0x82
        .byte   0xE5,0x0E,0x5E,0x25,0xC4,0xDC,0x9A,0xCB


reed1table: 	
        .byte   0xFF,0x00,0x01,0x19,0x02,0x32,0x1A,0xC6
        .byte   0x03,0xDF,0x33,0xEE,0x1B,0x68,0xC7,0x4B
        .byte   0x04,0x64,0xE0,0x0E,0x34,0x8D,0xEF,0x81
        .byte   0x1C,0xC1,0x69,0xF8,0xC8,0x08,0x4C,0x71
        .byte   0x05,0x8A,0x65,0x2F,0xE1,0x24,0x0F,0x21
        .byte   0x35,0x93,0x8E,0xDA,0xF0,0x12,0x82,0x45
        .byte   0x1D,0xB5,0xC2,0x7D,0x6A,0x27,0xF9,0xB9
        .byte   0xC9,0x9A,0x09,0x78,0x4D,0xE4,0x72,0xA6
        .byte   0x06,0xBF,0x8B,0x62,0x66,0xDD,0x30,0xFD
        .byte   0xE2,0x98,0x25,0xB3,0x10,0x91,0x22,0x88
        .byte   0x36,0xD0,0x94,0xCE,0x8F,0x96,0xDB,0xBD
        .byte   0xF1,0xD2,0x13,0x5C,0x83,0x38,0x46,0x40
        .byte   0x1E,0x42,0xB6,0xA3,0xC3,0x48,0x7E,0x6E
        .byte   0x6B,0x3A,0x28,0x54,0xFA,0x85,0xBA,0x3D
        .byte   0xCA,0x5E,0x9B,0x9F,0x0A,0x15,0x79,0x2B
        .byte   0x4E,0xD4,0xE5,0xAC,0x73,0xF3,0xA7,0x57
        .byte   0x07,0x70,0xC0,0xF7,0x8C,0x80,0x63,0x0D
        .byte   0x67,0x4A,0xDE,0xED,0x31,0xC5,0xFE,0x18
        .byte   0xE3,0xA5,0x99,0x77,0x26,0xB8,0xB4,0x7C
        .byte   0x11,0x44,0x92,0xD9,0x23,0x20,0x89,0x2E
        .byte   0x37,0x3F,0xD1,0x5B,0x95,0xBC,0xCF,0xCD
        .byte   0x90,0x87,0x97,0xB2,0xDC,0xFC,0xBE,0x61
        .byte   0xF2,0x56,0xD3,0xAB,0x14,0x2A,0x5D,0x9E
        .byte   0x84,0x3C,0x39,0x53,0x47,0x6D,0x41,0xA2
        .byte   0x1F,0x2D,0x43,0xD8,0xB7,0x7B,0xA4,0x76
        .byte   0xC4,0x17,0x49,0xEC,0x7F,0x0C,0x6F,0xF6
        .byte   0x6C,0xA1,0x3B,0x52,0x29,0x9D,0x55,0xAA
        .byte   0xFB,0x60,0x86,0xB1,0xBB,0xCC,0x3E,0x5A
        .byte   0xCB,0x59,0x5F,0xB0,0x9C,0xA9,0xA0,0x51
        .byte   0x0B,0xF5,0x16,0xEB,0x7A,0x75,0x2C,0xD7
        .byte   0x4F,0xAE,0xD5,0xE9,0xE6,0xE7,0xAD,0xE8
        .byte   0x74,0xD6,0xF4,0xEA,0xA8,0x50,0x58,0xAF
 	

reed2table:
    .byte     0x3B,0x0D,0x68,0xBD,0x44,0xD1,0x1E,0x08
    .byte     0xA3,0x41,0x29,0xE5,0x62,0x32,0x24,0x3B
    .byte     0x76,0x1A,0xD0,0x67,0x88,0xBF,0x3C,0x10
    .byte     0x5B,0x82,0x52,0xD7,0xC4,0x64,0x48,0x76
    .byte     0xEC,0x34,0xBD,0xCE,0x0D,0x63,0x78,0x20
    .byte     0xB6,0x19,0xA4,0xB3,0x95,0xC8,0x90,0xEC
    .byte     0xC5,0x68,0x67,0x81,0x1A,0xC6,0xF0,0x40
    .byte     0x71,0x32,0x55,0x7B,0x37,0x8D,0x3D,0xC5
    .byte     0x97,0xD0,0xCE,0x1F,0x34,0x91,0xFD,0x80
    .byte     0xE2,0x64,0xAA,0xF6,0x6E,0x07,0x7A,0x97
    .byte     0x33,0xBD,0x81,0x3E,0x68,0x3F,0xE7,0x1D
    .byte     0xD9,0xC8,0x49,0xF1,0xDC,0x0E,0xF4,0x33
    .byte     0x66,0x67,0x1F,0x7C,0xD0,0x7E,0xD3,0x3A
    .byte     0xAF,0x8D,0x92,0xFF,0xA5,0x1C,0xF5,0x66
    .byte     0xCC,0xCE,0x3E,0xF8,0xBD,0xFC,0xBB,0x74
    .byte     0x43,0x07,0x39,0xE3,0x57,0x38,0xF7,0xCC
    .byte     0x85,0x81,0x7C,0xED,0x67,0xE5,0x6B,0xE8
    .byte     0x86,0x0E,0x72,0xDB,0xAE,0x70,0xF3,0x85
    .byte     0x17,0x1F,0xF8,0xC7,0xCE,0xD7,0xD6,0xCD
    .byte     0x11,0x1C,0xE4,0xAB,0x41,0xE0,0xFB,0x17
    .byte     0x2E,0x3E,0xED,0x93,0x81,0xB3,0xB1,0x87
    .byte     0x22,0x38,0xD5,0x4B,0x82,0xDD,0xEB,0x2E
    .byte     0x5C,0x7C,0xC7,0x3B,0x1F,0x7B,0x7F,0x13
    .byte     0x44,0x70,0xB7,0x96,0x19,0xA7,0xCB,0x5C
    .byte     0xB8,0xF8,0x93,0x76,0x3E,0xF6,0xFE,0x26
    .byte     0x88,0xE0,0x73,0x31,0x32,0x53,0x8B,0xB8
    .byte     0x6D,0xED,0x3B,0xEC,0x7C,0xF1,0xE1,0x4C
    .byte     0x0D,0xDD,0xE6,0x62,0x64,0xA6,0x0B,0x6D
    .byte     0xDA,0xC7,0x76,0xC5,0xF8,0xFF,0xDF,0x98
    .byte     0x1A,0xA7,0xD1,0xC4,0xC8,0x51,0x16,0xDA
    .byte     0xA9,0x93,0xEC,0x97,0xED,0xE3,0xA3,0x2D
    .byte     0x34,0x53,0xBF,0x95,0x8D,0xA2,0x2C,0xA9
    .byte     0x4F,0x3B,0xC5,0x33,0xC7,0xDB,0x5B,0x5A
    .byte     0x68,0xA6,0x63,0x37,0x07,0x59,0x58,0x4F
    .byte     0x9E,0x76,0x97,0x66,0x93,0xAB,0xB6,0xB4
    .byte     0xD0,0x51,0xC6,0x6E,0x0E,0xB2,0xB0,0x9E
    .byte     0x21,0xEC,0x33,0xCC,0x3B,0x4B,0x71,0x75
    .byte     0xBD,0xA2,0x91,0xDC,0x1C,0x79,0x7D,0x21
    .byte     0x42,0xC5,0x66,0x85,0x76,0x96,0xE2,0xEA
    .byte     0x67,0x59,0x3F,0xA5,0x38,0xF2,0xFA,0x42
    .byte     0x84,0x97,0xCC,0x17,0xEC,0x31,0xD9,0xC9
    .byte     0xCE,0xB2,0x7E,0x57,0x70,0xF9,0xE9,0x84
    .byte     0x15,0x33,0x85,0x2E,0xC5,0x62,0xAF,0x8F
    .byte     0x81,0x79,0xFC,0xAE,0xE0,0xEF,0xCF,0x15
    .byte     0x2A,0x66,0x17,0x5C,0x97,0xC4,0x43,0x03
    .byte     0x1F,0xF2,0xE5,0x41,0xDD,0xC3,0x83,0x2A
    .byte     0x54,0xCC,0x2E,0xB8,0x33,0x95,0x86,0x06
    .byte     0x3E,0xF9,0xD7,0x82,0xA7,0x9B,0x1B,0x54
    .byte     0xA8,0x85,0x5C,0x6D,0x66,0x37,0x11,0x0C
    .byte     0x7C,0xEF,0xB3,0x19,0x53,0x2B,0x36,0xA8
    .byte     0x4D,0x17,0xB8,0xDA,0xCC,0x6E,0x22,0x18
    .byte     0xF8,0xC3,0x7B,0x32,0xA6,0x56,0x6C,0x4D
    .byte     0x9A,0x2E,0x6D,0xA9,0x85,0xDC,0x44,0x30
    .byte     0xED,0x9B,0xF6,0x64,0x51,0xAC,0xD8,0x9A
    .byte     0x29,0x5C,0xDA,0x4F,0x17,0xA5,0x88,0x60
    .byte     0xC7,0x2B,0xF1,0xC8,0xA2,0x45,0xAD,0x29
    .byte     0x52,0xB8,0xA9,0x9E,0x2E,0x57,0x0D,0xC0
    .byte     0x93,0x56,0xFF,0x8D,0x59,0x8A,0x47,0x52
    .byte     0xA4,0x6D,0x4F,0x21,0x5C,0xAE,0x1A,0x9D
    .byte     0x3B,0xAC,0xE3,0x07,0xB2,0x09,0x8E,0xA4
    .byte     0x55,0xDA,0x9E,0x42,0xB8,0x41,0x34,0x27
    .byte     0x76,0x45,0xDB,0x0E,0x79,0x12,0x01,0x55
    .byte     0xAA,0xA9,0x21,0x84,0x6D,0x82,0x68,0x4E
    .byte     0xEC,0x8A,0xAB,0x1C,0xF2,0x24,0x02,0xAA
    .byte     0x49,0x4F,0x42,0x15,0xDA,0x19,0xD0,0x9C
    .byte     0xC5,0x09,0x4B,0x38,0xF9,0x48,0x04,0x49
    .byte     0x92,0x9E,0x84,0x2A,0xA9,0x32,0xBD,0x25
    .byte     0x97,0x12,0x96,0x70,0xEF,0x90,0x08,0x92
    .byte     0x39,0x21,0x15,0x54,0x4F,0x64,0x67,0x4A
    .byte     0x33,0x24,0x31,0xE0,0xC3,0x3D,0x10,0x39
    .byte     0x72,0x42,0x2A,0xA8,0x9E,0xC8,0xCE,0x94
    .byte     0x66,0x48,0x62,0xDD,0x9B,0x7A,0x20,0x72
    .byte     0xE4,0x84,0x54,0x4D,0x21,0x8D,0x81,0x35
    .byte     0xCC,0x90,0xC4,0xA7,0x2B,0xF4,0x40,0xE4
    .byte     0xD5,0x15,0xA8,0x9A,0x42,0x07,0x1F,0x6A
    .byte     0x85,0x3D,0x95,0x53,0x56,0xF5,0x80,0xD5
    .byte     0xB7,0x2A,0x4D,0x29,0x84,0x0E,0x3E,0xD4
    .byte     0x17,0x7A,0x37,0xA6,0xAC,0xF7,0x1D,0xB7
    .byte     0x73,0x54,0x9A,0x52,0x15,0x1C,0x7C,0xB5
    .byte     0x2E,0xF4,0x6E,0x51,0x45,0xF3,0x3A,0x73
    .byte     0xE6,0xA8,0x29,0xA4,0x2A,0x38,0xF8,0x77
    .byte     0x5C,0xF5,0xDC,0xA2,0x8A,0xFB,0x74,0xE6
    .byte     0xD1,0x4D,0x52,0x55,0x54,0x70,0xED,0xEE
    .byte     0xB8,0xF7,0xA5,0x59,0x09,0xEB,0xE8,0xD1
    .byte     0xBF,0x9A,0xA4,0xAA,0xA8,0xE0,0xC7,0xC1
    .byte     0x6D,0xF3,0x57,0xB2,0x12,0xCB,0xCD,0xBF
    .byte     0x63,0x29,0x55,0x49,0x4D,0xDD,0x93,0x9F
    .byte     0xDA,0xFB,0xAE,0x79,0x24,0x8B,0x87,0x63
    .byte     0xC6,0x52,0xAA,0x92,0x9A,0xA7,0x3B,0x23
    .byte     0xA9,0xEB,0x41,0xF2,0x48,0x0B,0x13,0xC6
    .byte     0x91,0xA4,0x49,0x39,0x29,0x53,0x76,0x46
    .byte     0x4F,0xCB,0x82,0xF9,0x90,0x16,0x26,0x91
    .byte     0x3F,0x55,0x92,0x72,0x52,0xA6,0xEC,0x8C
    .byte     0x9E,0x8B,0x19,0xEF,0x3D,0x2C,0x4C,0x3F
    .byte     0x7E,0xAA,0x39,0xE4,0xA4,0x51,0xC5,0x05
    .byte     0x21,0x0B,0x32,0xC3,0x7A,0x58,0x98,0x7E
    .byte     0xFC,0x49,0x72,0xD5,0x55,0xA2,0x97,0x0A
    .byte     0x42,0x16,0x64,0x9B,0xF4,0xB0,0x2D,0xFC
    .byte     0xE5,0x92,0xE4,0xB7,0xAA,0x59,0x33,0x14
    .byte     0x84,0x2C,0xC8,0x2B,0xF5,0x7D,0x5A,0xE5
    .byte     0xD7,0x39,0xD5,0x73,0x49,0xB2,0x66,0x28
    .byte     0x15,0x58,0x8D,0x56,0xF7,0xFA,0xB4,0xD7
    .byte     0xB3,0x72,0xB7,0xE6,0x92,0x79,0xCC,0x50
    .byte     0x2A,0xB0,0x07,0xAC,0xF3,0xE9,0x75,0xB3
    .byte     0x7B,0xE4,0x73,0xD1,0x39,0xF2,0x85,0xA0
    .byte     0x54,0x7D,0x0E,0x45,0xFB,0xCF,0xEA,0x7B
    .byte     0xF6,0xD5,0xE6,0xBF,0x72,0xF9,0x17,0x5D
    .byte     0xA8,0xFA,0x1C,0x8A,0xEB,0x83,0xC9,0xF6
    .byte     0xF1,0xB7,0xD1,0x63,0xE4,0xEF,0x2E,0xBA
    .byte     0x4D,0xE9,0x38,0x09,0xCB,0x1B,0x8F,0xF1
    .byte     0xFF,0x73,0xBF,0xC6,0xD5,0xC3,0x5C,0x69
    .byte     0x9A,0xCF,0x70,0x12,0x8B,0x36,0x03,0xFF
    .byte     0xE3,0xE6,0x63,0x91,0xB7,0x9B,0xB8,0xD2
    .byte     0x29,0x83,0xE0,0x24,0x0B,0x6C,0x06,0xE3
    .byte     0xDB,0xD1,0xC6,0x3F,0x73,0x2B,0x6D,0xB9
    .byte     0x52,0x1B,0xDD,0x48,0x16,0xD8,0x0C,0xDB
    .byte     0xAB,0xBF,0x91,0x7E,0xE6,0x56,0xDA,0x6F
    .byte     0xA4,0x36,0xA7,0x90,0x2C,0xAD,0x18,0xAB
    .byte     0x4B,0x63,0x3F,0xFC,0xD1,0xAC,0xA9,0xDE
    .byte     0x55,0x6C,0x53,0x3D,0x58,0x47,0x30,0x4B
    .byte     0x96,0xC6,0x7E,0xE5,0xBF,0x45,0x4F,0xA1
    .byte     0xAA,0xD8,0xA6,0x7A,0xB0,0x8E,0x60,0x96
    .byte     0x31,0x91,0xFC,0xD7,0x63,0x8A,0x9E,0x5F
    .byte     0x49,0xAD,0x51,0xF4,0x7D,0x01,0xC0,0x31
    .byte     0x62,0x3F,0xE5,0xB3,0xC6,0x09,0x21,0xBE
    .byte     0x92,0x47,0xA2,0xF5,0xFA,0x02,0x9D,0x62
    .byte     0xC4,0x7E,0xD7,0x7B,0x91,0x12,0x42,0x61
    .byte     0x39,0x8E,0x59,0xF7,0xE9,0x04,0x27,0xC4
    .byte     0x95,0xFC,0xB3,0xF6,0x3F,0x24,0x84,0xC2
    .byte     0x72,0x01,0xB2,0xF3,0xCF,0x08,0x4E,0x95
    .byte     0x37,0xE5,0x7B,0xF1,0x7E,0x48,0x15,0x99
    .byte     0xE4,0x02,0x79,0xFB,0x83,0x10,0x9C,0x37
    .byte     0x6E,0xD7,0xF6,0xFF,0xFC,0x90,0x2A,0x2F
    .byte     0xD5,0x04,0xF2,0xEB,0x1B,0x20,0x25,0x6E
    .byte     0xDC,0xB3,0xF1,0xE3,0xE5,0x3D,0x54,0x5E
    .byte     0xB7,0x08,0xF9,0xCB,0x36,0x40,0x4A,0xDC
    .byte     0xA5,0x7B,0xFF,0xDB,0xD7,0x7A,0xA8,0xBC
    .byte     0x73,0x10,0xEF,0x8B,0x6C,0x80,0x94,0xA5
    .byte     0x57,0xF6,0xE3,0xAB,0xB3,0xF4,0x4D,0x65
    .byte     0xE6,0x20,0xC3,0x0B,0xD8,0x1D,0x35,0x57
    .byte     0xAE,0xF1,0xDB,0x4B,0x7B,0xF5,0x9A,0xCA
    .byte     0xD1,0x40,0x9B,0x16,0xAD,0x3A,0x6A,0xAE
    .byte     0x41,0xFF,0xAB,0x96,0xF6,0xF7,0x29,0x89
    .byte     0xBF,0x80,0x2B,0x2C,0x47,0x74,0xD4,0x41
    .byte     0x82,0xE3,0x4B,0x31,0xF1,0xF3,0x52,0x0F
    .byte     0x63,0x1D,0x56,0x58,0x8E,0xE8,0xB5,0x82
    .byte     0x19,0xDB,0x96,0x62,0xFF,0xFB,0xA4,0x1E
    .byte     0xC6,0x3A,0xAC,0xB0,0x01,0xCD,0x77,0x19
    .byte     0x32,0xAB,0x31,0xC4,0xE3,0xEB,0x55,0x3C
    .byte     0x91,0x74,0x45,0x7D,0x02,0x87,0xEE,0x32
    .byte     0x64,0x4B,0x62,0x95,0xDB,0xCB,0xAA,0x78
    .byte     0x3F,0xE8,0x8A,0xFA,0x04,0x13,0xC1,0x64
    .byte     0xC8,0x96,0xC4,0x37,0xAB,0x8B,0x49,0xF0
    .byte     0x7E,0xCD,0x09,0xE9,0x08,0x26,0x9F,0xC8
    .byte     0x8D,0x31,0x95,0x6E,0x4B,0x0B,0x92,0xFD
    .byte     0xFC,0x87,0x12,0xCF,0x10,0x4C,0x23,0x8D
    .byte     0x07,0x62,0x37,0xDC,0x96,0x16,0x39,0xE7
    .byte     0xE5,0x13,0x24,0x83,0x20,0x98,0x46,0x07
    .byte     0x0E,0xC4,0x6E,0xA5,0x31,0x2C,0x72,0xD3
    .byte     0xD7,0x26,0x48,0x1B,0x40,0x2D,0x8C,0x0E
    .byte     0x1C,0x95,0xDC,0x57,0x62,0x58,0xE4,0xBB
    .byte     0xB3,0x4C,0x90,0x36,0x80,0x5A,0x05,0x1C
    .byte     0x38,0x37,0xA5,0xAE,0xC4,0xB0,0xD5,0x6B
    .byte     0x7B,0x98,0x3D,0x6C,0x1D,0xB4,0x0A,0x38
    .byte     0x70,0x6E,0x57,0x41,0x95,0x7D,0xB7,0xD6
    .byte     0xF6,0x2D,0x7A,0xD8,0x3A,0x75,0x14,0x70
    .byte     0xE0,0xDC,0xAE,0x82,0x37,0xFA,0x73,0xB1
    .byte     0xF1,0x5A,0xF4,0xAD,0x74,0xEA,0x28,0xE0
    .byte     0xDD,0xA5,0x41,0x19,0x6E,0xE9,0xE6,0x7F
    .byte     0xFF,0xB4,0xF5,0x47,0xE8,0xC9,0x50,0xDD
    .byte     0xA7,0x57,0x82,0x32,0xDC,0xCF,0xD1,0xFE
    .byte     0xE3,0x75,0xF7,0x8E,0xCD,0x8F,0xA0,0xA7
    .byte     0x53,0xAE,0x19,0x64,0xA5,0x83,0xBF,0xE1
    .byte     0xDB,0xEA,0xF3,0x01,0x87,0x03,0x5D,0x53
    .byte     0xA6,0x41,0x32,0xC8,0x57,0x1B,0x63,0xDF
    .byte     0xAB,0xC9,0xFB,0x02,0x13,0x06,0xBA,0xA6
    .byte     0x51,0x82,0x64,0x8D,0xAE,0x36,0xC6,0xA3
    .byte     0x4B,0x8F,0xEB,0x04,0x26,0x0C,0x69,0x51
    .byte     0xA2,0x19,0xC8,0x07,0x41,0x6C,0x91,0x5B
    .byte     0x96,0x03,0xCB,0x08,0x4C,0x18,0xD2,0xA2
    .byte     0x59,0x32,0x8D,0x0E,0x82,0xD8,0x3F,0xB6
    .byte     0x31,0x06,0x8B,0x10,0x98,0x30,0xB9,0x59
    .byte     0xB2,0x64,0x07,0x1C,0x19,0xAD,0x7E,0x71
    .byte     0x62,0x0C,0x0B,0x20,0x2D,0x60,0x6F,0xB2
    .byte     0x79,0xC8,0x0E,0x38,0x32,0x47,0xFC,0xE2
    .byte     0xC4,0x18,0x16,0x40,0x5A,0xC0,0xDE,0x79
    .byte     0xF2,0x8D,0x1C,0x70,0x64,0x8E,0xE5,0xD9
    .byte     0x95,0x30,0x2C,0x80,0xB4,0x9D,0xA1,0xF2
    .byte     0xF9,0x07,0x38,0xE0,0xC8,0x01,0xD7,0xAF
    .byte     0x37,0x60,0x58,0x1D,0x75,0x27,0x5F,0xF9
    .byte     0xEF,0x0E,0x70,0xDD,0x8D,0x02,0xB3,0x43
    .byte     0x6E,0xC0,0xB0,0x3A,0xEA,0x4E,0xBE,0xEF
    .byte     0xC3,0x1C,0xE0,0xA7,0x07,0x04,0x7B,0x86
    .byte     0xDC,0x9D,0x7D,0x74,0xC9,0x9C,0x61,0xC3
    .byte     0x9B,0x38,0xDD,0x53,0x0E,0x08,0xF6,0x11
    .byte     0xA5,0x27,0xFA,0xE8,0x8F,0x25,0xC2,0x9B
    .byte     0x2B,0x70,0xA7,0xA6,0x1C,0x10,0xF1,0x22
    .byte     0x57,0x4E,0xE9,0xCD,0x03,0x4A,0x99,0x2B
    .byte     0x56,0xE0,0x53,0x51,0x38,0x20,0xFF,0x44
    .byte     0xAE,0x9C,0xCF,0x87,0x06,0x94,0x2F,0x56
    .byte     0xAC,0xDD,0xA6,0xA2,0x70,0x40,0xE3,0x88
    .byte     0x41,0x25,0x83,0x13,0x0C,0x35,0x5E,0xAC
    .byte     0x45,0xA7,0x51,0x59,0xE0,0x80,0xDB,0x0D
    .byte     0x82,0x4A,0x1B,0x26,0x18,0x6A,0xBC,0x45
    .byte     0x8A,0x53,0xA2,0xB2,0xDD,0x1D,0xAB,0x1A
    .byte     0x19,0x94,0x36,0x4C,0x30,0xD4,0x65,0x8A
    .byte     0x09,0xA6,0x59,0x79,0xA7,0x3A,0x4B,0x34
    .byte     0x32,0x35,0x6C,0x98,0x60,0xB5,0xCA,0x09
    .byte     0x12,0x51,0xB2,0xF2,0x53,0x74,0x96,0x68
    .byte     0x64,0x6A,0xD8,0x2D,0xC0,0x77,0x89,0x12
    .byte     0x24,0xA2,0x79,0xF9,0xA6,0xE8,0x31,0xD0
    .byte     0xC8,0xD4,0xAD,0x5A,0x9D,0xEE,0x0F,0x24
    .byte     0x48,0x59,0xF2,0xEF,0x51,0xCD,0x62,0xBD
    .byte     0x8D,0xB5,0x47,0xB4,0x27,0xC1,0x1E,0x48
    .byte     0x90,0xB2,0xF9,0xC3,0xA2,0x87,0xC4,0x67
    .byte     0x07,0x77,0x8E,0x75,0x4E,0x9F,0x3C,0x90
    .byte     0x3D,0x79,0xEF,0x9B,0x59,0x13,0x95,0xCE
    .byte     0x0E,0xEE,0x01,0xEA,0x9C,0x23,0x78,0x3D
    .byte     0x7A,0xF2,0xC3,0x2B,0xB2,0x26,0x37,0x81
    .byte     0x1C,0xC1,0x02,0xC9,0x25,0x46,0xF0,0x7A
    .byte     0xF4,0xF9,0x9B,0x56,0x79,0x4C,0x6E,0x1F
    .byte     0x38,0x9F,0x04,0x8F,0x4A,0x8C,0xFD,0xF4
    .byte     0xF5,0xEF,0x2B,0xAC,0xF2,0x98,0xDC,0x3E
    .byte     0x70,0x23,0x08,0x03,0x94,0x05,0xE7,0xF5
    .byte     0xF7,0xC3,0x56,0x45,0xF9,0x2D,0xA5,0x7C
    .byte     0xE0,0x46,0x10,0x06,0x35,0x0A,0xD3,0xF7
    .byte     0xF3,0x9B,0xAC,0x8A,0xEF,0x5A,0x57,0xF8
    .byte     0xDD,0x8C,0x20,0x0C,0x6A,0x14,0xBB,0xF3
    .byte     0xFB,0x2B,0x45,0x09,0xC3,0xB4,0xAE,0xED
    .byte     0xA7,0x05,0x40,0x18,0xD4,0x28,0x6B,0xFB
    .byte     0xEB,0x56,0x8A,0x12,0x9B,0x75,0x41,0xC7
    .byte     0x53,0x0A,0x80,0x30,0xB5,0x50,0xD6,0xEB
    .byte     0xCB,0xAC,0x09,0x24,0x2B,0xEA,0x82,0x93
    .byte     0xA6,0x14,0x1D,0x60,0x77,0xA0,0xB1,0xCB
    .byte     0x8B,0x45,0x12,0x48,0x56,0xC9,0x19,0x3B
    .byte     0x51,0x28,0x3A,0xC0,0xEE,0x5D,0x7F,0x8B
    .byte     0x0B,0x8A,0x24,0x90,0xAC,0x8F,0x32,0x76
    .byte     0xA2,0x50,0x74,0x9D,0xC1,0xBA,0xFE,0x0B
    .byte     0x16,0x09,0x48,0x3D,0x45,0x03,0x64,0xEC
    .byte     0x59,0xA0,0xE8,0x27,0x9F,0x69,0xE1,0x16
    .byte     0x2C,0x12,0x90,0x7A,0x8A,0x06,0xC8,0xC5
    .byte     0xB2,0x5D,0xCD,0x4E,0x23,0xD2,0xDF,0x2C
    .byte     0x58,0x24,0x3D,0xF4,0x09,0x0C,0x8D,0x97
    .byte     0x79,0xBA,0x87,0x9C,0x46,0xB9,0xA3,0x58
    .byte     0xB0,0x48,0x7A,0xF5,0x12,0x18,0x07,0x33
    .byte     0xF2,0x69,0x13,0x25,0x8C,0x6F,0x5B,0xB0
    .byte     0x7D,0x90,0xF4,0xF7,0x24,0x30,0x0E,0x66
    .byte     0xF9,0xD2,0x26,0x4A,0x05,0xDE,0xB6,0x7D
    .byte     0xFA,0x3D,0xF5,0xF3,0x48,0x60,0x1C,0xCC
    .byte     0xEF,0xB9,0x4C,0x94,0x0A,0xA1,0x71,0xFA
    .byte     0xE9,0x7A,0xF7,0xFB,0x90,0xC0,0x38,0x85
    .byte     0xC3,0x6F,0x98,0x35,0x14,0x5F,0xE2,0xE9
    .byte     0xCF,0xF4,0xF3,0xEB,0x3D,0x9D,0x70,0x17
    .byte     0x9B,0xDE,0x2D,0x6A,0x28,0xBE,0xD9,0xCF
    .byte     0x83,0xF5,0xFB,0xCB,0x7A,0x27,0xE0,0x2E
    .byte     0x2B,0xA1,0x5A,0xD4,0x50,0x61,0xAF,0x83
    .byte     0x1B,0xF7,0xEB,0x8B,0xF4,0x4E,0xDD,0x5C
    .byte     0x56,0x5F,0xB4,0xB5,0xA0,0xC2,0x43,0x1B
    .byte     0x36,0xF3,0xCB,0x0B,0xF5,0x9C,0xA7,0xB8
    .byte     0xAC,0xBE,0x75,0x77,0x5D,0x99,0x86,0x36
    .byte     0x6C,0xFB,0x8B,0x16,0xF7,0x25,0x53,0x6D
    .byte     0x45,0x61,0xEA,0xEE,0xBA,0x2F,0x11,0x6C
    .byte     0xD8,0xEB,0x0B,0x2C,0xF3,0x4A,0xA6,0xDA
    .byte     0x8A,0xC2,0xC9,0xC1,0x69,0x5E,0x22,0xD8
    .byte     0xAD,0xCB,0x16,0x58,0xFB,0x94,0x51,0xA9
    .byte     0x09,0x99,0x8F,0x9F,0xD2,0xBC,0x44,0xAD
    .byte     0x47,0x8B,0x2C,0xB0,0xEB,0x35,0xA2,0x4F
    .byte     0x12,0x2F,0x03,0x23,0xB9,0x65,0x88,0x47
    .byte     0x8E,0x0B,0x58,0x7D,0xCB,0x6A,0x59,0x9E
    .byte     0x24,0x5E,0x06,0x46,0x6F,0xCA,0x0D,0x8E
    .byte     0x01,0x16,0xB0,0xFA,0x8B,0xD4,0xB2,0x21
    .byte     0x48,0xBC,0x0C,0x8C,0xDE,0x89,0x1A,0x01
    .byte     0x02,0x2C,0x7D,0xE9,0x0B,0xB5,0x79,0x42
    .byte     0x90,0x65,0x18,0x05,0xA1,0x0F,0x34,0x02
    .byte     0x04,0x58,0xFA,0xCF,0x16,0x77,0xF2,0x84
    .byte     0x3D,0xCA,0x30,0x0A,0x5F,0x1E,0x68,0x04
    .byte     0x08,0xB0,0xE9,0x83,0x2C,0xEE,0xF9,0x15
    .byte     0x7A,0x89,0x60,0x14,0xBE,0x3C,0xD0,0x08
    .byte     0x10,0x7D,0xCF,0x1B,0x58,0xC1,0xEF,0x2A
    .byte     0xF4,0x0F,0xC0,0x28,0x61,0x78,0xBD,0x10
    .byte     0x20,0xFA,0x83,0x36,0xB0,0x9F,0xC3,0x54
    .byte     0xF5,0x1E,0x9D,0x50,0xC2,0xF0,0x67,0x20
    .byte     0x40,0xE9,0x1B,0x6C,0x7D,0x23,0x9B,0xA8
    .byte     0xF7,0x3C,0x27,0xA0,0x99,0xFD,0xCE,0x40
    .byte     0x80,0xCF,0x36,0xD8,0xFA,0x46,0x2B,0x4D
    .byte     0xF3,0x78,0x4E,0x5D,0x2F,0xE7,0x81,0x80
    .byte     0x1D,0x83,0x6C,0xAD,0xE9,0x8C,0x56,0x9A
    .byte     0xFB,0xF0,0x9C,0xBA,0x5E,0xD3,0x1F,0x1D
    .byte     0x3A,0x1B,0xD8,0x47,0xCF,0x05,0xAC,0x29
    .byte     0xEB,0xFD,0x25,0x69,0xBC,0xBB,0x3E,0x3A
    .byte     0x74,0x36,0xAD,0x8E,0x83,0x0A,0x45,0x52
    .byte     0xCB,0xE7,0x4A,0xD2,0x65,0x6B,0x7C,0x74
    .byte     0xE8,0x6C,0x47,0x01,0x1B,0x14,0x8A,0xA4
    .byte     0x8B,0xD3,0x94,0xB9,0xCA,0xD6,0xF8,0xE8
    .byte     0xCD,0xD8,0x8E,0x02,0x36,0x28,0x09,0x55
    .byte     0x0B,0xBB,0x35,0x6F,0x89,0xB1,0xED,0xCD
    .byte     0x87,0xAD,0x01,0x04,0x6C,0x50,0x12,0xAA
    .byte     0x16,0x6B,0x6A,0xDE,0x0F,0x7F,0xC7,0x87
    .byte     0x13,0x47,0x02,0x08,0xD8,0xA0,0x24,0x49
    .byte     0x2C,0xD6,0xD4,0xA1,0x1E,0xFE,0x93,0x13
    .byte     0x26,0x8E,0x04,0x10,0xAD,0x5D,0x48,0x92
    .byte     0x58,0xB1,0xB5,0x5F,0x3C,0xE1,0x3B,0x26
    .byte     0x4C,0x01,0x08,0x20,0x47,0xBA,0x90,0x39
    .byte     0xB0,0x7F,0x77,0xBE,0x78,0xDF,0x76,0x4C
    .byte     0x98,0x02,0x10,0x40,0x8E,0x69,0x3D,0x72
    .byte     0x7D,0xFE,0xEE,0x61,0xF0,0xA3,0xEC,0x98
    .byte     0x2D,0x04,0x20,0x80,0x01,0xD2,0x7A,0xE4
    .byte     0xFA,0xE1,0xC1,0xC2,0xFD,0x5B,0xC5,0x2D
    .byte     0x5A,0x08,0x40,0x1D,0x02,0xB9,0xF4,0xD5
    .byte     0xE9,0xDF,0x9F,0x99,0xE7,0xB6,0x97,0x5A
    .byte     0xB4,0x10,0x80,0x3A,0x04,0x6F,0xF5,0xB7
    .byte     0xCF,0xA3,0x23,0x2F,0xD3,0x71,0x33,0xB4
    .byte     0x75,0x20,0x1D,0x74,0x08,0xDE,0xF7,0x73
    .byte     0x83,0x5B,0x46,0x5E,0xBB,0xE2,0x66,0x75
    .byte     0xEA,0x40,0x3A,0xE8,0x10,0xA1,0xF3,0xE6
    .byte     0x1B,0xB6,0x8C,0xBC,0x6B,0xD9,0xCC,0xEA
    .byte     0xC9,0x80,0x74,0xCD,0x20,0x5F,0xFB,0xD1
    .byte     0x36,0x71,0x05,0x65,0xD6,0xAF,0x85,0xC9
    .byte     0x8F,0x1D,0xE8,0x87,0x40,0xBE,0xEB,0xBF
    .byte     0x6C,0xE2,0x0A,0xCA,0xB1,0x43,0x17,0x8F
    .byte     0x03,0x3A,0xCD,0x13,0x80,0x61,0xCB,0x63
    .byte     0xD8,0xD9,0x14,0x89,0x7F,0x86,0x2E,0x03
    .byte     0x06,0x74,0x87,0x26,0x1D,0xC2,0x8B,0xC6
    .byte     0xAD,0xAF,0x28,0x0F,0xFE,0x11,0x5C,0x06
    .byte     0x0C,0xE8,0x13,0x4C,0x3A,0x99,0x0B,0x91
    .byte     0x47,0x43,0x50,0x1E,0xE1,0x22,0xB8,0x0C
    .byte     0x18,0xCD,0x26,0x98,0x74,0x2F,0x16,0x3F
    .byte     0x8E,0x86,0xA0,0x3C,0xDF,0x44,0x6D,0x18
    .byte     0x30,0x87,0x4C,0x2D,0xE8,0x5E,0x2C,0x7E
    .byte     0x01,0x11,0x5D,0x78,0xA3,0x88,0xDA,0x30
    .byte     0x60,0x13,0x98,0x5A,0xCD,0xBC,0x58,0xFC
    .byte     0x02,0x22,0xBA,0xF0,0x5B,0x0D,0xA9,0x60
    .byte     0xC0,0x26,0x2D,0xB4,0x87,0x65,0xB0,0xE5
    .byte     0x04,0x44,0x69,0xFD,0xB6,0x1A,0x4F,0xC0
    .byte     0x9D,0x4C,0x5A,0x75,0x13,0xCA,0x7D,0xD7
    .byte     0x08,0x88,0xD2,0xE7,0x71,0x34,0x9E,0x9D
    .byte     0x27,0x98,0xB4,0xEA,0x26,0x89,0xFA,0xB3
    .byte     0x10,0x0D,0xB9,0xD3,0xE2,0x68,0x21,0x27
    .byte     0x4E,0x2D,0x75,0xC9,0x4C,0x0F,0xE9,0x7B
    .byte     0x20,0x1A,0x6F,0xBB,0xD9,0xD0,0x42,0x4E
    .byte     0x9C,0x5A,0xEA,0x8F,0x98,0x1E,0xCF,0xF6
    .byte     0x40,0x34,0xDE,0x6B,0xAF,0xBD,0x84,0x9C
    .byte     0x25,0xB4,0xC9,0x03,0x2D,0x3C,0x83,0xF1
    .byte     0x80,0x68,0xA1,0xD6,0x43,0x67,0x15,0x25
    .byte     0x4A,0x75,0x8F,0x06,0x5A,0x78,0x1B,0xFF
    .byte     0x1D,0xD0,0x5F,0xB1,0x86,0xCE,0x2A,0x4A
    .byte     0x94,0xEA,0x03,0x0C,0xB4,0xF0,0x36,0xE3
    .byte     0x3A,0xBD,0xBE,0x7F,0x11,0x81,0x54,0x94
    .byte     0x35,0xC9,0x06,0x18,0x75,0xFD,0x6C,0xDB
    .byte     0x74,0x67,0x61,0xFE,0x22,0x1F,0xA8,0x35
    .byte     0x6A,0x8F,0x0C,0x30,0xEA,0xE7,0xD8,0xAB
    .byte     0xE8,0xCE,0xC2,0xE1,0x44,0x3E,0x4D,0x6A
    .byte     0xD4,0x03,0x18,0x60,0xC9,0xD3,0xAD,0x4B
    .byte     0xCD,0x81,0x99,0xDF,0x88,0x7C,0x9A,0xD4
    .byte     0xB5,0x06,0x30,0xC0,0x8F,0xBB,0x47,0x96
    .byte     0x87,0x1F,0x2F,0xA3,0x0D,0xF8,0x29,0xB5
    .byte     0x77,0x0C,0x60,0x9D,0x03,0x6B,0x8E,0x31
    .byte     0x13,0x3E,0x5E,0x5B,0x1A,0xED,0x52,0x77
    .byte     0xEE,0x18,0xC0,0x27,0x06,0xD6,0x01,0x62
    .byte     0x26,0x7C,0xBC,0xB6,0x34,0xC7,0xA4,0xEE
    .byte     0xC1,0x30,0x9D,0x4E,0x0C,0xB1,0x02,0xC4
    .byte     0x4C,0xF8,0x65,0x71,0x68,0x93,0x55,0xC1
    .byte     0x9F,0x60,0x27,0x9C,0x18,0x7F,0x04,0x95
    .byte     0x98,0xED,0xCA,0xE2,0xD0,0x3B,0xAA,0x9F
    .byte     0x23,0xC0,0x4E,0x25,0x30,0xFE,0x08,0x37
    .byte     0x2D,0xC7,0x89,0xD9,0xBD,0x76,0x49,0x23
    .byte     0x46,0x9D,0x9C,0x4A,0x60,0xE1,0x10,0x6E
    .byte     0x5A,0x93,0x0F,0xAF,0x67,0xEC,0x92,0x46
    .byte     0x8C,0x27,0x25,0x94,0xC0,0xDF,0x20,0xDC
    .byte     0xB4,0x3B,0x1E,0x43,0xCE,0xC5,0x39,0x8C
    .byte     0x05,0x4E,0x4A,0x35,0x9D,0xA3,0x40,0xA5
    .byte     0x75,0x76,0x3C,0x86,0x81,0x97,0x72,0x05
    .byte     0x0A,0x9C,0x94,0x6A,0x27,0x5B,0x80,0x57
    .byte     0xEA,0xEC,0x78,0x11,0x1F,0x33,0xE4,0x0A
    .byte     0x14,0x25,0x35,0xD4,0x4E,0xB6,0x1D,0xAE
    .byte     0xC9,0xC5,0xF0,0x22,0x3E,0x66,0xD5,0x14
    .byte     0x28,0x4A,0x6A,0xB5,0x9C,0x71,0x3A,0x41
    .byte     0x8F,0x97,0xFD,0x44,0x7C,0xCC,0xB7,0x28
    .byte     0x50,0x94,0xD4,0x77,0x25,0xE2,0x74,0x82
    .byte     0x03,0x33,0xE7,0x88,0xF8,0x85,0x73,0x50
    .byte     0xA0,0x35,0xB5,0xEE,0x4A,0xD9,0xE8,0x19
    .byte     0x06,0x66,0xD3,0x0D,0xED,0x17,0xE6,0xA0
    .byte     0x5D,0x6A,0x77,0xC1,0x94,0xAF,0xCD,0x32
    .byte     0x0C,0xCC,0xBB,0x1A,0xC7,0x2E,0xD1,0x5D
    .byte     0xBA,0xD4,0xEE,0x9F,0x35,0x43,0x87,0x64
    .byte     0x18,0x85,0x6B,0x34,0x93,0x5C,0xBF,0xBA
    .byte     0x69,0xB5,0xC1,0x23,0x6A,0x86,0x13,0xC8
    .byte     0x30,0x17,0xD6,0x68,0x3B,0xB8,0x63,0x69
    .byte     0xD2,0x77,0x9F,0x46,0xD4,0x11,0x26,0x8D
    .byte     0x60,0x2E,0xB1,0xD0,0x76,0x6D,0xC6,0xD2
    .byte     0xB9,0xEE,0x23,0x8C,0xB5,0x22,0x4C,0x07
    .byte     0xC0,0x5C,0x7F,0xBD,0xEC,0xDA,0x91,0xB9
    .byte     0x6F,0xC1,0x46,0x05,0x77,0x44,0x98,0x0E
    .byte     0x9D,0xB8,0xFE,0x67,0xC5,0xA9,0x3F,0x6F
    .byte     0xDE,0x9F,0x8C,0x0A,0xEE,0x88,0x2D,0x1C
    .byte     0x27,0x6D,0xE1,0xCE,0x97,0x4F,0x7E,0xDE
    .byte     0xA1,0x23,0x05,0x14,0xC1,0x0D,0x5A,0x38
    .byte     0x4E,0xDA,0xDF,0x81,0x33,0x9E,0xFC,0xA1
    .byte     0x5F,0x46,0x0A,0x28,0x9F,0x1A,0xB4,0x70
    .byte     0x9C,0xA9,0xA3,0x1F,0x66,0x21,0xE5,0x5F
    .byte     0xBE,0x8C,0x14,0x50,0x23,0x34,0x75,0xE0
    .byte     0x25,0x4F,0x5B,0x3E,0xCC,0x42,0xD7,0xBE
    .byte     0x61,0x05,0x28,0xA0,0x46,0x68,0xEA,0xDD
    .byte     0x4A,0x9E,0xB6,0x7C,0x85,0x84,0xB3,0x61
    .byte     0xC2,0x0A,0x50,0x5D,0x8C,0xD0,0xC9,0xA7
    .byte     0x94,0x21,0x71,0xF8,0x17,0x15,0x7B,0xC2
    .byte     0x99,0x14,0xA0,0xBA,0x05,0xBD,0x8F,0x53
    .byte     0x35,0x42,0xE2,0xED,0x2E,0x2A,0xF6,0x99
    .byte     0x2F,0x28,0x5D,0x69,0x0A,0x67,0x03,0xA6
    .byte     0x6A,0x84,0xD9,0xC7,0x5C,0x54,0xF1,0x2F
    .byte     0x5E,0x50,0xBA,0xD2,0x14,0xCE,0x06,0x51
    .byte     0xD4,0x15,0xAF,0x93,0xB8,0xA8,0xFF,0x5E
    .byte     0xBC,0xA0,0x69,0xB9,0x28,0x81,0x0C,0xA2
    .byte     0xB5,0x2A,0x43,0x3B,0x6D,0x4D,0xE3,0xBC
    .byte     0x65,0x5D,0xD2,0x6F,0x50,0x1F,0x18,0x59
    .byte     0x77,0x54,0x86,0x76,0xDA,0x9A,0xDB,0x65
    .byte     0xCA,0xBA,0xB9,0xDE,0xA0,0x3E,0x30,0xB2
    .byte     0xEE,0xA8,0x11,0xEC,0xA9,0x29,0xAB,0xCA
    .byte     0x89,0x69,0x6F,0xA1,0x5D,0x7C,0x60,0x79
    .byte     0xC1,0x4D,0x22,0xC5,0x4F,0x52,0x4B,0x89
    .byte     0x0F,0xD2,0xDE,0x5F,0xBA,0xF8,0xC0,0xF2
    .byte     0x9F,0x9A,0x44,0x97,0x9E,0xA4,0x96,0x0F
    .byte     0x1E,0xB9,0xA1,0xBE,0x69,0xED,0x9D,0xF9
    .byte     0x23,0x29,0x88,0x33,0x21,0x55,0x31,0x1E
    .byte     0x3C,0x6F,0x5F,0x61,0xD2,0xC7,0x27,0xEF
    .byte     0x46,0x52,0x0D,0x66,0x42,0xAA,0x62,0x3C
    .byte     0x78,0xDE,0xBE,0xC2,0xB9,0x93,0x4E,0xC3
    .byte     0x8C,0xA4,0x1A,0xCC,0x84,0x49,0xC4,0x78
    .byte     0xF0,0xA1,0x61,0x99,0x6F,0x3B,0x9C,0x9B
    .byte     0x05,0x55,0x34,0x85,0x15,0x92,0x95,0xF0
    .byte     0xFD,0x5F,0xC2,0x2F,0xDE,0x76,0x25,0x2B
    .byte     0x0A,0xAA,0x68,0x17,0x2A,0x39,0x37,0xFD
    .byte     0xE7,0xBE,0x99,0x5E,0xA1,0xEC,0x4A,0x56
    .byte     0x14,0x49,0xD0,0x2E,0x54,0x72,0x6E,0xE7
    .byte     0xD3,0x61,0x2F,0xBC,0x5F,0xC5,0x94,0xAC
    .byte     0x28,0x92,0xBD,0x5C,0xA8,0xE4,0xDC,0xD3
    .byte     0xBB,0xC2,0x5E,0x65,0xBE,0x97,0x35,0x45
    .byte     0x50,0x39,0x67,0xB8,0x4D,0xD5,0xA5,0xBB
    .byte     0x6B,0x99,0xBC,0xCA,0x61,0x33,0x6A,0x8A
    .byte     0xA0,0x72,0xCE,0x6D,0x9A,0xB7,0x57,0x6B
    .byte     0xD6,0x2F,0x65,0x89,0xC2,0x66,0xD4,0x09
    .byte     0x5D,0xE4,0x81,0xDA,0x29,0x73,0xAE,0xD6
    .byte     0xB1,0x5E,0xCA,0x0F,0x99,0xCC,0xB5,0x12
    .byte     0xBA,0xD5,0x1F,0xA9,0x52,0xE6,0x41,0xB1
    .byte     0x7F,0xBC,0x89,0x1E,0x2F,0x85,0x77,0x24
    .byte     0x69,0xB7,0x3E,0x4F,0xA4,0xD1,0x82,0x7F
    .byte     0xFE,0x65,0x0F,0x3C,0x5E,0x17,0xEE,0x48
    .byte     0xD2,0x73,0x7C,0x9E,0x55,0xBF,0x19,0xFE
    .byte     0xE1,0xCA,0x1E,0x78,0xBC,0x2E,0xC1,0x90
    .byte     0xB9,0xE6,0xF8,0x21,0xAA,0x63,0x32,0xE1
    .byte     0xDF,0x89,0x3C,0xF0,0x65,0x5C,0x9F,0x3D
    .byte     0x6F,0xD1,0xED,0x42,0x49,0xC6,0x64,0xDF
    .byte     0xA3,0x0F,0x78,0xFD,0xCA,0xB8,0x23,0x7A
    .byte     0xDE,0xBF,0xC7,0x84,0x92,0x91,0xC8,0xA3
    .byte     0x5B,0x1E,0xF0,0xE7,0x89,0x6D,0x46,0xF4
    .byte     0xA1,0x63,0x93,0x15,0x39,0x3F,0x8D,0x5B
    .byte     0xB6,0x3C,0xFD,0xD3,0x0F,0xDA,0x8C,0xF5
    .byte     0x5F,0xC6,0x3B,0x2A,0x72,0x7E,0x07,0xB6
    .byte     0x71,0x78,0xE7,0xBB,0x1E,0xA9,0x05,0xF7
    .byte     0xBE,0x91,0x76,0x54,0xE4,0xFC,0x0E,0x71
    .byte     0xE2,0xF0,0xD3,0x6B,0x3C,0x4F,0x0A,0xF3
    .byte     0x61,0x3F,0xEC,0xA8,0xD5,0xE5,0x1C,0xE2
    .byte     0xD9,0xFD,0xBB,0xD6,0x78,0x9E,0x14,0xFB
    .byte     0xC2,0x7E,0xC5,0x4D,0xB7,0xD7,0x38,0xD9
    .byte     0xAF,0xE7,0x6B,0xB1,0xF0,0x21,0x28,0xEB
    .byte     0x99,0xFC,0x97,0x9A,0x73,0xB3,0x70,0xAF
    .byte     0x43,0xD3,0xD6,0x7F,0xFD,0x42,0x50,0xCB
    .byte     0x2F,0xE5,0x33,0x29,0xE6,0x7B,0xE0,0x43
    .byte     0x86,0xBB,0xB1,0xFE,0xE7,0x84,0xA0,0x8B
    .byte     0x5E,0xD7,0x66,0x52,0xD1,0xF6,0xDD,0x86
    .byte     0x11,0x6B,0x7F,0xE1,0xD3,0x15,0x5D,0x0B
    .byte     0xBC,0xB3,0xCC,0xA4,0xBF,0xF1,0xA7,0x11
    .byte     0x22,0xD6,0xFE,0xDF,0xBB,0x2A,0xBA,0x16
    .byte     0x65,0x7B,0x85,0x55,0x63,0xFF,0x53,0x22
    .byte     0x44,0xB1,0xE1,0xA3,0x6B,0x54,0x69,0x2C
    .byte     0xCA,0xF6,0x17,0xAA,0xC6,0xE3,0xA6,0x44
    .byte     0x88,0x7F,0xDF,0x5B,0xD6,0xA8,0xD2,0x58
    .byte     0x89,0xF1,0x2E,0x49,0x91,0xDB,0x51,0x88
    .byte     0x0D,0xFE,0xA3,0xB6,0xB1,0x4D,0xB9,0xB0
    .byte     0x0F,0xFF,0x5C,0x92,0x3F,0xAB,0xA2,0x0D
    .byte     0x1A,0xE1,0x5B,0x71,0x7F,0x9A,0x6F,0x7D
    .byte     0x1E,0xE3,0xB8,0x39,0x7E,0x4B,0x59,0x1A
    .byte     0x34,0xDF,0xB6,0xE2,0xFE,0x29,0xDE,0xFA
    .byte     0x3C,0xDB,0x6D,0x72,0xFC,0x96,0xB2,0x34
    .byte     0x68,0xA3,0x71,0xD9,0xE1,0x52,0xA1,0xE9
    .byte     0x78,0xAB,0xDA,0xE4,0xE5,0x31,0x79,0x68
    .byte     0xD0,0x5B,0xE2,0xAF,0xDF,0xA4,0x5F,0xCF
    .byte     0xF0,0x4B,0xA9,0xD5,0xD7,0x62,0xF2,0xD0
    .byte     0xBD,0xB6,0xD9,0x43,0xA3,0x55,0xBE,0x83
    .byte     0xFD,0x96,0x4F,0xB7,0xB3,0xC4,0xF9,0xBD
    .byte     0x67,0x71,0xAF,0x86,0x5B,0xAA,0x61,0x1B
    .byte     0xE7,0x31,0x9E,0x73,0x7B,0x95,0xEF,0x67
    .byte     0xCE,0xE2,0x43,0x11,0xB6,0x49,0xC2,0x36
    .byte     0xD3,0x62,0x21,0xE6,0xF6,0x37,0xC3,0xCE
    .byte     0x81,0xD9,0x86,0x22,0x71,0x92,0x99,0x6C
    .byte     0xBB,0xC4,0x42,0xD1,0xF1,0x6E,0x9B,0x81
    .byte     0x1F,0xAF,0x11,0x44,0xE2,0x39,0x2F,0xD8
    .byte     0x6B,0x95,0x84,0xBF,0xFF,0xDC,0x2B,0x1F
    .byte     0x3E,0x43,0x22,0x88,0xD9,0x72,0x5E,0xAD
    .byte     0xD6,0x37,0x15,0x63,0xE3,0xA5,0x56,0x3E
    .byte     0x7C,0x86,0x44,0x0D,0xAF,0xE4,0xBC,0x47
    .byte     0xB1,0x6E,0x2A,0xC6,0xDB,0x57,0xAC,0x7C
    .byte     0xF8,0x11,0x88,0x1A,0x43,0xD5,0x65,0x8E
    .byte     0x7F,0xDC,0x54,0x91,0xAB,0xAE,0x45,0xF8
    .byte     0xED,0x22,0x0D,0x34,0x86,0xB7,0xCA,0x01
    .byte     0xFE,0xA5,0xA8,0x3F,0x4B,0x41,0x8A,0xED
    .byte     0xC7,0x44,0x1A,0x68,0x11,0x73,0x89,0x02
    .byte     0xE1,0x57,0x4D,0x7E,0x96,0x82,0x09,0xC7
    .byte     0x93,0x88,0x34,0xD0,0x22,0xE6,0x0F,0x04
    .byte     0xDF,0xAE,0x9A,0xFC,0x31,0x19,0x12,0x93
    .byte     0x3B,0x0D,0x68,0xBD,0x44,0xD1,0x1E,0x08
    .byte     0xA3,0x41,0x29,0xE5,0x62,0x32,0x24,0x3B


@: byte interleaving - 256 bytes storage per packet 

interleavetable:
        .short  0x0000,0x0101,0x0202,0x0303,0x0404,0x0505,0x0606,0x0707
        .short  0x0808,0x0909,0x0A0A,0x0B0B,0x000C,0x010D,0x020E,0x030F
        .short  0x0410,0x0511,0x0612,0x0713,0x0814,0x0915,0x0A16,0x0B17
        .short  0x0018,0x0119,0x021A,0x031B,0x041C,0x051D,0x061E,0x071F
        .short  0x0820,0x0921,0x0A22,0x0B23,0x0024,0x0125,0x0226,0x0327
        .short  0x0428,0x0529,0x062A,0x072B,0x082C,0x092D,0x0A2E,0x0B2F
        .short  0x0030,0x0131,0x0232,0x0333,0x0434,0x0535,0x0636,0x0737
        .short  0x0838,0x0939,0x0A3A,0x0B3B,0x003C,0x013D,0x023E,0x033F
        .short  0x0440,0x0541,0x0642,0x0743,0x0844,0x0945,0x0A46,0x0B47
        .short  0x0048,0x0149,0x024A,0x034B,0x044C,0x054D,0x064E,0x074F
        .short  0x0850,0x0951,0x0A52,0x0B53,0x0054,0x0155,0x0256,0x0357
        .short  0x0458,0x0559,0x065A,0x075B,0x085C,0x095D,0x0A5E,0x0B5F
        .short  0x0060,0x0161,0x0262,0x0363,0x0464,0x0565,0x0666,0x0767
        .short  0x0868,0x0969,0x0A6A,0x0B6B,0x006C,0x016D,0x026E,0x036F
        .short  0x0470,0x0571,0x0672,0x0773,0x0874,0x0975,0x0A76,0x0B77
        .short  0x0078,0x0179,0x027A,0x037B,0x047C,0x057D,0x067E,0x077F
        .short  0x0880,0x0981,0x0A82,0x0B83,0x0084,0x0185,0x0286,0x0387
        .short  0x0488,0x0589,0x068A,0x078B,0x088C,0x098D,0x0A8E,0x0B8F
        .short  0x0090,0x0191,0x0292,0x0393,0x0494,0x0595,0x0696,0x0797
        .short  0x0898,0x0999,0x0A9A,0x0B9B,0x009C,0x019D,0x029E,0x039F
        .short  0x04A0,0x05A1,0x06A2,0x07A3,0x08A4,0x09A5,0x0AA6,0x0BA7
        .short  0x00A8,0x01A9,0x02AA,0x03AB,0x04AC,0x05AD,0x06AE,0x07AF
        .short  0x08B0,0x09B1,0x0AB2,0x0BB3,0x00B4,0x01B5,0x02B6,0x03B7
        .short  0x04B8,0x05B9,0x06BA,0x07BB,0x08BC,0x09BD,0x0ABE,0x0BBF
        .short  0x00C0,0x01C1,0x02C2,0x03C3,0x04C4,0x05C5,0x06C6,0x07C7
        .short  0x08C8,0x09C9,0x0ACA,0x0BCB,0x0000,0x0000,0x0000,0x0000


   	 .end
	
